#include <iostream>

#include "Move.h"

int main()
{
    Move temp{};
    // MoveAndForward&& rrefTemp = temp; // 不能绑定左值
    // 通过move函数将左值转化为右值
    auto&& rrefTemp{std::move(temp)};

    auto func = [](auto&& t)
    {
        Forward temp{};
        temp(t);
        temp(std::move(t));
        temp(std::forward<decltype(t)>(t));
    };

    func("Hello World"); // 传递一个右值，但是在模板函数中被转化成了左值
    func(std::forward<const char*>("Hello World"));

    return 0;
}
